package com.zhuang.jdk8.lambda;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Supplier;

public class DemoSupplier {

    public static void main(String[] args) {
        printMax(() -> {
            int[] arr = {11, 22, 33, 43, 6};
            Arrays.sort(arr);
            return arr[arr.length - 1];
        });

        printString(() -> {
            List<String> list = new ArrayList<>();
            list.add("zkk");
            list.add("pony");
            list.add("test");
            return list;
        });
    }

    // 意味着"供给"，对应的Lambda表达式对外提供一个符合泛型类型的对象数据
    // 供给型接口，通过Supplier接口中的get方法可以得到一个值，无参有返回的接口
    public static void printMax(Supplier<Integer> supplier) {
        Integer max = supplier.get();
        System.out.println("最大值->" + max);
    }

    // 传任何参数进行返回接收即可
    public static void printString(Supplier<List<String>> supplier) {
        supplier.get().forEach(System.out::println);
    }
}
